package com.abner.design.patterns.strategy;

/**
 * 鸭子
 * @author abner
 */
public abstract class Duck {

	/**
	 * 聚合飞翔策略接口
	 */
	FlyBehavior flyBehavior;

	/**
	 * 显示信息
	 */
	public abstract void display();

	/**
	 * 鸭子叫
	 */
	public void quack() {
		System.out.println("鸭子嘎嘎叫---");
	}

	/**
	 * 鸭子游泳
	 */
	public void swim() {
		System.out.println("鸭子游泳---");
	}

	/**
	 * 鸭子飞
	 */
	public void fly() {
		if(flyBehavior != null) {
			flyBehavior.fly();
		}
	}

	public void setFlyBehavior(FlyBehavior flyBehavior) {
		this.flyBehavior = flyBehavior;
	}

}
